package com.abewy.android.apps.klyph.core.fql.serializer;
import org.json.JSONObject;
import com.abewy.android.apps.klyph.core.fql.Comment;
import com.abewy.android.apps.klyph.core.fql.Tag;
import com.abewy.android.apps.klyph.core.fql.Comment.Attachment;
import com.abewy.android.apps.klyph.core.fql.Comment.Attachment.Media;
import com.abewy.android.apps.klyph.core.fql.Comment.Attachment.Target;
import com.abewy.android.apps.klyph.core.fql.Comment.Attachment.Media.Image;
import com.abewy.android.apps.klyph.core.graph.GraphObject;
public class CommentDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Comment comment = new Comment();
deserializePrimitives(comment, data);
comment.setAttachment((Attachment) new AttachmentDeserializer().deserializeObject(getJsonObject(data, "attachment")));
comment.setText_tags(new TagDeserializer().deserializeArray(getJsonArray(data, "text_tags"), Tag.class));
return comment;
}
private static class AttachmentDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Attachment attachment = new Attachment();
deserializePrimitives(attachment, data);
attachment.setDescription_tags(new TagDeserializer().deserializeArray(getJsonArray(data, "description_tags"), Tag.class));
attachment.setMedia((Media) new MediaDeserializer().deserializeObject(getJsonObject(data, "media")));
attachment.setTarget((Target) new TargetDeserializer().deserializeObject(getJsonObject(data, "target")));
return attachment;
}
private static class MediaDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Media media = new Media();
media.setImage((Image) new ImageDeserializer().deserializeObject(getJsonObject(data, "image")));
return media;
}
private static class ImageDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Image image = new Image();
deserializePrimitives(image, data);
return image;
}
}
}
private static class TargetDeserializer extends Deserializer
{
@Override
public GraphObject deserializeObject(JSONObject data)
{
Target target = new Target();
deserializePrimitives(target, data);
return target;
}
}
}
}